﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Intelligent.OTC.Domain.DataModel;
using Intelligent.OTC.Domain.Repositories;
using Intelligent.OTC.Common.UnitOfWork;
using Intelligent.OTC.Common;

namespace Intelligent.OTC.Business
{
    public interface ICustomerService
    {
        ICacheService CacheSvr { get; set; }
        OTCRepository CommonRep { get; set; }
        IQueryable<Customer> GetCustomer();
        void AddCustomer(Customer cust);
        IQueryable<CustomerAging> GetCustomerAging();
        IQueryable<CustomerAgingStaging> GetCustomerAgingStaging();
        //void AccountImport();
        //void InvoiceImport();
        void createAgingReport();
        void allFileImport();
        int SubmitInitialAging();
        void SubmitOneYearSales();
        IQueryable<CustomerAging> GetCustomerAgingByCollector(string eID);

        //get one customer by customernum and sitecode
        //add by pxc 20150722
        Customer GetOneCustomer(string num);
        List<Customer> GetCustomerByCustomerNum(string cusNum);
        void DeleteCustomerAging(List<int> custIds);
        void uploadOneYearSales();
        //get customermaster data
        IQueryable<CustomerMasterData> GetCustMasterData();
        IQueryable<CustomerMasterDto> GetCustMasterDataForAssign(string customers);
        List<CustomerGroupCfgStaging> GetGroupStaing();
        //List<FileUploadHistory> GetUntreatedHistoryList();
    }
}
